home *** CD-ROM | disk | FTP | other *** search
/ Utilities Professional 1-1500 / Utilities Professional 1-1500 (1994)(WPD)[!].iso / 12511500 / var1292.dms / var1292.adf / landscape2 / Landscape2.doc < prev    next >
Text File  |  1993-03-16  |  47KB  |  1,004 lines

  1.  
  2.      LANDSCAPE (c) June 1991
  3.      Version 2.6 (c) July 1992
  4.      Version 2.7 (c) June 1993
  5.  
  6.      A Fractal scenery generator.     
  7.  
  8.      Programmed by Andrew Kreibich with AMOSv1.35 (C) 1990 Mandarin/Jawx
  9.      and compiled with the AMOS compiler.
  10.  
  11.  
  12.  
  13.      LANDSCAPE V2 docs  
  14.  
  15.      This doc file applies to the full version. You may have the landscape
  16.      demonstration version. The only difference between the two is that all
  17.      saves have been disabled in the Demonstration version and you can only
  18.      choose a SEED between 40 and 50.
  19.      You can save a lot of calculation time and time spent copying parameters,
  20.      generate many more scenes and be able to save your pictures by
  21.      registering. (see DISTRIBUTION, below)
  22.  
  23.  
  24.  
  25.  
  26.      NEW IN VERSION 2!
  27.      *****************
  28.      Faster rendering times.     
  29.      Much better interface. Nearly all parameters are now operated by slider
  30.      bars. New features include shadows, waves, rivers and lakes, speed 
  31.      increases in rendering and calculations, change of viewing direction and
  32.      more. Read on!
  33.  
  34.      Version 2.7 has been compiled using amos 1.35 so it should run on A1200s.
  35.  
  36.      Note to users of earlier versions.
  37.      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  38.  
  39.      I think you can still use the data files from earlier versions in 
  40.      version 2. I have tried a few without any problems so far. All parameters
  41.      which are new to version 2 will remain unaltered when you load a version
  42.      1 file.
  43.  
  44.      HOWEVER!! You cannot load a version 2 file into a version 1 programme!!!
  45.      You might get away with a parameter file (NOT TESTED!) but any attempt
  46.      to load a version 2 MAP file into earlier versions will almost certainly
  47.      crash the machine! 
  48.  
  49.  
  50.      All calculation times quoted below are for the compiled version.
  51.      If you have registered and are playing around with the source using the
  52.      AMOS interpreter then the routines will take from 2 to 4 times as long.
  53.      
  54.      #####################
  55.       Memory requirements
  56.      #####################
  57.  
  58.      This programme needs 1 meg. You may still have a few problems if you are
  59.      running from workbench, although version 2.5 uses memory more efficiently
  60.      than earlier versions.  If you have trouble try putting it on its own
  61.      boot disk.
  62.      Then replace your startup sequence with
  63.  
  64.      Run > Nil: landscape   
  65.      endcli
  66.  
  67.      (Make sure you have Run and endcli in your C directory)     
  68.     
  69.      You can also use the above command to run from CLI.
  70.  
  71.  
  72.  
  73.      Purpose:
  74.      This programme generates Fractal scenery. There are already a few 
  75.      commercial programmes which do this but this is written in AMOS.
  76.      (Runing from the AMOS interpreter is a bit slow, although the compiled 
  77.      version is a lot quicker and rivals the others in most areas.)
  78.  
  79.      It does this by generating a square array of random points and then
  80.      converting these to heights before plotting them on the screen as a set
  81.      of polygons. In the highest resolution there are 131072 polygons in a 
  82.      picture.
  83.  
  84.      I used the midpoint displacement algorithm on page 100 of
  85.  
  86.      "The science of fractal images" by Pietgen and Saupe
  87.      Springer-Verlag 1988
  88.  
  89.      to generate the array of points and the projection and illumination
  90.      formulae on pages 126 to 128 of the same book to get me started, 
  91.      although all of the routines have been modified many times since I
  92.      read the book.
  93.  
  94.      ################
  95.        DISTRIBUTION
  96.      ################
  97.  
  98.      THIS PROGRAMME IS SHAREWARE!
  99.  
  100.      This means that my ego and my wallet would appreciate a little feedback
  101.      for all my efforts!
  102.      You may (and are encouraged to) distribute the Landscape demonstration 
  103.      version to anyone providing you observe the following conditions.
  104.     
  105.      (a) You don't make any money from it (apart from a nominal copying fee)
  106.          without my prior written permission.
  107.  
  108.      (b) You may not include it or any routines from it in any commercial
  109.          release (including SHAREWARE or one of its variations) without
  110.          my prior written permission. 
  111.  
  112.      (c) You distribute this entire doc. file all the readme files and all
  113.          example files with the programme. The only exception to this is
  114.          for magazines using it on a coverdisk. If space is needed you may 
  115.          delete the .DATABK and .IFF files in the example drawer, but NOT 
  116.          the .REND files. Everyone else please leave them intact.
  117.  
  118.      (d) You do not distribute the full version of LANDSCAPE to anyone.
  119.  
  120.      (e) You may use the demonstration version on the coverdisk of a magazine
  121.          providing you include all files except for those mentioned in (c)
  122.          above.
  123.  
  124.      (f) If you use it you write back and let me know what you think of it
  125.          along with a shareware donation. (minimum $20 Australian)
  126.  
  127.               To  Andrew Kreibich
  128.                   Box 333
  129.                   Wantirna South
  130.                   Victoria
  131.                   Australia.  3152
  132.  
  133.      When you register (In Australian dollars please, our banks charge a
  134.      fortune to convert:- another benefit of deregulation?), you will receive
  135.      the latest compiled version with all features enabled, together with
  136.      the source code to this programme (in AMOS).     
  137.    
  138.      Naturally if you think I have done a really fantastic job on this 
  139.      and you cannot help but show your appreciation by sending more money 
  140.      (Australian Dollars!) etc. then I will happily accept it! 
  141.  
  142.      If you are having trouble getting your hands on Australian money I can
  143.      change Pounds (sterling), USA dollars and Dm, but it costs 
  144.      me money so please send the equivalent of $25 if you wish to use one
  145.      of these currencies. 
  146.  
  147.      PLEASE DO NOT SEND A EUROCHECK!!! My bank wants to charge over $40 to
  148.      convert them!
  149.  
  150.  
  151.     If you have the full version and have already registered: Thankyou
  152.  
  153.     If you have the full version and have not registered: Please do so and
  154.     may the person who supplied it to you be rendered in the gobberwarts
  155.     with a blurglecruncheon!
  156.  
  157.      USAGE
  158.      *****
  159.      This programme is driven by the menus.
  160.      
  161.      There are two stages to drawing a picture.
  162.      
  163.      STAGE 1. Calculate the array of data points for the map.
  164.               Use "Map Points" menu.
  165.  
  166.      STAGE 2. Render the data as a picture. Use "Render" menu.
  167.               The parameters which control various aspects of the picture
  168.               (rivers, lakes, height etc.) can be changed from the Data Screen.
  169.  
  170.     THE AMOS FILE REQUESTER
  171.     ***********************
  172.     All loads and saves use the AMOS file requester. 
  173.  
  174.     The parent gadget is the small circle on the top left corner.
  175.  
  176.     The list of files and directories can be scrolled using the slider bar or
  177.     the arrows on the left.
  178.  
  179.     A list of all available volumes can be obtained by clicking in the window
  180.     which lists the files with the right mouse button. To get the file list
  181.     back click in this window with the right mouse button again.    
  182.    
  183.     Directories are prefixed with a *
  184.     
  185.     Everything else is self explanatory (I think).
  186.  
  187.  
  188.      MENUS
  189.      *****
  190.    
  191.      PROJECT:-
  192.          
  193.            ABOUT: try it!
  194.      
  195.            LOAD IFF: Loads a picture from disk. I put this in so that
  196.                      you could see all of your creations without having
  197.                      to exit the programme. You can't actually do anything
  198.                      with the picture.
  199.                      You should make sure that you are in the right screen
  200.                      resolution (standard or interlace) before you load or 
  201.                      you will get a squashed or stretched picture.
  202.                      This is inactive during CALCULATION and RENDER.
  203.  
  204.            SAVE IFF: Saves the current screen to disk.
  205.                      This is inactive during CALCULATION.
  206.                      AND DISABLED IN THE DEMONSTRATION VERSION. 
  207.  
  208.            ADVERT: Try it!
  209.                    IFSgen is an iterated function system generator. It 
  210.                    allows you to generate (and save) IFS codes and produce
  211.                    pictures of self-similar objects (ferns, trees,
  212.                    Sierpinski triangles etc). Fully driven by mouse and
  213.                    menus. The mouse is used to define and manipulate the
  214.                    images. You can save IFS data and IFF picture files
  215.                    of your creations. Many example pictures and IFS code
  216.                    files are included
  217.                    IFSgenV2.1 is shareware and requires 1 Meg. 
  218.                    If you want a demo version of it see Fred Fish disk 554
  219.                    If you want the full version (now ,up to V2.2) all you
  220.                    have to do is write and send me $20.
  221.  
  222.            SCREEN  Toggles interlace and standard screens.
  223.                    WARNING: your picture will be wiped when you make the 
  224.                    change but you do get a requester in case you choose this
  225.                    by mistake. You will not be able to change to interlace
  226.                    if you have insufficient chip memory.
  227.                    This is inactive during CALCULATE and RENDER.
  228.  
  229.            QUIT: say bye-bye.
  230.  
  231.  
  232.      MAP POINTS:-
  233.      All items in this menu are to do with generating the array of data 
  234.      points to make the map (STAGE 1).
  235.      (If you haven't got any points then you don't get much of a picture!)
  236.      The data points are stored in an AMOS bank (7). To fill this bank with
  237.      data select CALCULATE from the DATA POINTS menu. This will generate a
  238.      set of points using the data in the parameters table. A default 
  239.      set of parameters based on a random number seed of 42 is provided 
  240.      so that new users can easily generate a set of points to play with.
  241.      
  242.          PARAMETERS: This brings up a table of parameters which you can
  243.                      change to get different sets of data points.
  244.            
  245.               RESOLUTION: There are four calculation resolutions
  246.                    1: Calculates every point in the 256X256 array
  247.                    2: Calculates every second point.
  248.                    4: Calculates every fourth point.
  249.                    8: Calculates every eighth point.
  250.  
  251.                 Just click the button you want with the left mouse.   
  252.  
  253.  
  254.                  The more points you get, the better the resolution of 
  255.                  final picture, but more points take longer.
  256.                  The following are typical calculation times.
  257.                  
  258.                  Resolution      Time     Available plotting resolutions
  259.  
  260.                      1          1 min.       1, 2, 4, 8, 16
  261.                      2         15 sec.          2, 4, 8, 16
  262.                      4          3 sec.             4, 8, 16
  263.                      8          1 sec.                8, 16
  264.  
  265.                EXTRA RANDOM: ON/OFF
  266.                If this is on it adds an extra random value to every point
  267.                after it has calculated the random midpoint displacement
  268.                (see "The science of fractal images", above)
  269.                When this is on it has one obvious effect (It takes about
  270.                50% longer to generate the points) and one not so 
  271.                obvious effect (Without it you sometimes get rows of
  272.                mountain peaks in a straight line across your picture. 
  273.                Turning it ON reduces the effect). The times above were 
  274.                calculated with this ON.
  275.  
  276.  
  277.  
  278.                PROBABILITY DISTRIBUTION. 
  279.                This changes the probability distribution of the random numbers
  280.                NORMAL uses a gaussian (symmetrical) distribution and
  281.                SKEWED uses an highly asymmetrical distribution (based on a
  282.                geometric probability distribution).
  283.                A symmetrical distribution will make the valleys look the same 
  284.                as upside down mountains. This is obviously wrong as it does
  285.                not simulate erosion. So I have provided two ways of getting
  286.                around this. 
  287.  
  288.                (a) use the POWER buttons on the other screen (see below) to 
  289.                    modify the symmetrical distribution by setting them to 2 
  290.                    or 3. This makes the mountains taller.
  291.                (b) Use the skewed distribution. You can also use the POWER
  292.                    buttons to modifiy a skewed distribution even further.
  293.  
  294.                Try it and see which you like. 
  295.      
  296.  
  297.                FRACTAL PARAMETER: This changes the FRACTAL DIMENSION
  298.                of the data. The fractal dimension is equal to
  299.                3 minus the fractal parameter.
  300.                This controls the roughness of the surface. You should
  301.                normally set this to BETWEEN 0.5 and 1, although any numbers
  302.                BETWEEN 0 and 1 will do.
  303.                For a smoother surface set this close to 1, for a rough 
  304.                surface set it a bit lower. Default is 0.85 which seems 
  305.                to work fairly well for most scenes. If you are not 
  306.                sure about this then try a few different values on 
  307.                resolution 1. 
  308.                Just drag the slider bar with the left mouse button to change
  309.                this
  310.  
  311.                SEED:
  312.                This seeds the random number generator. Change this
  313.                value to get different scenes. 
  314.                Click in the box with the left mouse button and the cursor
  315.                will appear. Type in the number you want (40 - 50 in the
  316.                demonstration version) and then press return. 
  317.  
  318.  
  319.                             ***************************
  320.                By the way, if you have been playing around with the
  321.                AMOS random number generator and had trouble regenerating
  322.                the same sequence of random numbers from the same seed, 
  323.                the following may be of interest.
  324.      
  325.                If you use Randomize 42 (or any number) you should (according 
  326.                to the manual) get the same set of random numbers each
  327.                time. In fact you get a different set (at least with 
  328.                AMOS 1.21) every time, just as if you had used Randomize Timer.
  329.                If you want the same set each time you must use a negative 
  330.                value for the Rnd function.
  331.                eg. Rnd (-10) generates a random number between 0 and 10 and
  332.                you will get the same series of numbers each time you randomize
  333.                with the same seed. 
  334.                Rnd (10) will generate a random number between 0 and 10 but it
  335.                will be (truly?) random and does not seem to depend on the seed
  336.                value.
  337.  
  338.                I hope this is of some use, it had me stumped for a while!
  339.  
  340.                              **************************
  341.  
  342.  
  343.  
  344.             
  345.     
  346.             DEFAULT: Returns all settings to their default setting.
  347.             RESTORE: Returns all settings to what they were before
  348.                      you started fiddling around with them after you
  349.                      chose this menu item.
  350.                QUIT: Accepts the current parameters and returns you to 
  351.                      the main screen.
  352.  
  353.      (Back to the main MAP menu now.)
  354.  
  355.          LOAD MAP:  Loads a bank of map points (and the data parameters)
  356.                     from disk. This is included to save you the trouble
  357.                     of waiting for the calculation, although with the
  358.                     compiled version you may prefer not to waste the disk 
  359.                     space.
  360.                     However if you have modified the data with rivers, lakes
  361.                     or dig, build, you should save it if you want to keep these
  362.                     changes.
  363.                     All Map files are suffixed with ".DATABK".
  364.  
  365.          SAVE MAP:  Saves a bank of map points (and all the Map and Rendering
  366.                     parameters)
  367.                     to disk.
  368.                     DISABLED IN THE DEMONSTRATION VERSION. 
  369.  
  370.          CALCULATE: Calculates the data (map) points using the parameters you
  371.                     specified. If you have not specified then the default
  372.                     values will be used.
  373.           
  374.          STOP CALC: Stops the calculation. This could leave you with a
  375.                     data bank which contains a mixture of two sets of
  376.                     data, so either recalculate or load another bank 
  377.                     before you render it. Naturally you can only use
  378.                     this while you are CALCULATING and all other menu 
  379.                     items will be disabled while you are calculating.
  380.                     
  381.      RENDER MENU:
  382.      All items in this menu are to do with rendering the picture (STAGE 2)
  383.  
  384.        DATA SCREEN: Brings up a screen of parameters which you can change.
  385.                     These are operated by slider bars or press buttons. 
  386.  
  387.        There are a number of main panels and a window in which you can 
  388.        generate a 2D picture of the scene. All of the buttons in the border
  389.        of this window can be used to modify the actual data points. If you 
  390.        want to work on your data another time it is a good idea to save it
  391.        after you have used the buttons.
  392.        All of the sliders and the other buttons are used to modify the picture
  393.        as it is rendered. Their settings can be saved using the  SAVE DATA 
  394.        menu option from the other screen or the Dsave button on this screen.
  395.  
  396.                    
  397.    Starting at the top left corner....
  398.  
  399.              RESOLUTION: This is similar to resolution of Map Points, 
  400.                          except that there is a 16 button which plots 
  401.                          every 16th point. 
  402.                          This changes the resolution in which the pictures
  403.                          (2D and 3D) are drawn.
  404.                          As before small numbers are high resolution.
  405.                          You cannot plot in a higher resolution than the
  406.                          resolution which the map was generated in.
  407.                          Eg. if you generated the map at resolution
  408.                          4 you can only render in 4, 8 or 16. The
  409.                          other buttons (1 and 2) will be inactive.
  410.                          The main purpose of this is so that you can
  411.                          preview a scene quickly.
  412.                          Typical scene rendering times (using the
  413.                          default data and plotting parameters) and running
  414.                          from the Compiled version are shown below. 
  415.                          Running from AMOS takes about twice as long. The      
  416.                          improvement is not much because most of the time is
  417.                          taken in the graphics operations (drawing the
  418.                          polygons) and AMOS is already pretty quick at this. 
  419.  
  420.                          3D rendering
  421.  
  422.                           Resolution     Time
  423.                              1        16 min. 22 sec
  424.                              2         4 min. 19 sec
  425.                              4         1 min. 10 sec
  426.                              8                20 sec.
  427.                             16                6 sec.
  428.  
  429.                           These times will vary depending on the scene and
  430.                           on the status of the PATTERN menu(see below)
  431.                           With this on it takes longer to draw rocks, trees 
  432.                           and waves than it does to draw snow and sea, so
  433.                           pictures with lots of snow and few waves will be
  434.                           faster. With PATTERN off you can reduce these
  435.                           times by up to 30%.
  436.                         
  437.                           2D rendering (in the window on the right)
  438.  
  439.                           Resolution   FAST off           FAST on
  440.                              1         6 min. 52 sec.    3 min. 
  441.                              2         1 min. 51 sec.           48 sec.
  442.                              4                27 sec.           12 sec.
  443.                              8                 7 sec.            3 sec.
  444.                              16                2 sec.            1 sec.
  445.                   NOTE: There is little point in rendering a 2D plot on
  446.                   resolution 1 as you will see very little difference from
  447.                   resolution 2. (In fact resolution 4 will usually be
  448.                   good enough) You will need to generate a 2D picture to 
  449.                   allow you to control sea, tree and snow levels, to add
  450.                   rivers and lakes and dig or build. 
  451.  
  452.    MLOAD and MSAVE: Loads and saves a map.
  453.                     Identical to LOAD MAP and SAVE MAP on the MAP menu.
  454.  
  455.    DLOAD and DSAVE: Loads and saves the rendering parameters.
  456.                     Identical to Load data and Save data on the main menu.
  457.  
  458.                     These buttons are provided to save you the trouble of
  459.                     going back to the main screen.
  460.  
  461.  
  462.  
  463.             SHADOWS: Press this in to generate shadows on the 3D picture.
  464.                      Shadow calculations take about 2 - 2½ minutes and are
  465.                      performed just before the picture is rendered. You
  466.                      should not turn this on when you are rendering a quick
  467.                      preview  screen as you would still have to wait for the
  468.                      full 2 - 2½ minutes. (You can cancel it if you leave it 
  469.                      on by mistake). You only have to calculate the shadows 
  470.                      once for each scene, but you will have to recalculate
  471.                      if you change the HEIGHT, PERSPECTIVE, AZIMUTH, ELEVATION
  472.                      or SEA LEVEL, use DIG, BUILD or add a RIVER or LAKE.
  473.                      The programme will keep track of this and will
  474.                      automatically recalculate next time you render in 3D. 
  475.  
  476.  
  477.             DEFAULT: Restores all parameters to the programmes default values.
  478.  
  479.             RESTORE: Restores all parameters to what they were when you opened
  480.                      this screen.
  481.  
  482.                EXIT: Returns you to the main screen.
  483.    
  484.  
  485.           PT.HEIGHT: This box displays the height of the point in the picture
  486.                      window which is under the crosshairs. It cannot be 
  487.                      selected so don't waste your time clicking it! It is
  488.                      only used to display the heights for other buttons.
  489.                      (Build, Dig, River, Lake, and all the Level buttons.)
  490.  
  491.  
  492.       The next set of buttons are in the border around the picture window.
  493.  
  494.                FAST: This hides the 2D screen while calculations are taking
  495.                      place. This is to speed up the calculation by a factor of
  496.                      about 2. It works with all of the data modification
  497.                      buttons around the border of the 2D window except build
  498.                      and dig, (see below) and also works with the DRAW button.
  499.  
  500.                      If you have turned this on and you want to see the 2D
  501.                      screen just press the left mouse button to toggle the 2D
  502.                      and  main screens. Remember that while the 2D screen is 
  503.                      visible the calculation will only run at half pace!
  504.  
  505.               DRAW: Draws a 2D plot in the window. Usually you will do this
  506.                     first so that you can see how you wish to modify the data.
  507.                     Start off with resolution 8 or 16 (use N.S,E,W, FLIP, <> 
  508.                     and up-down if you want to change the view ) and get the 
  509.                     sea level right first, then use resolution 4 to adjust 
  510.                     the snow and tree levels and put in rivers etc.
  511.  
  512.                    There are 2 types of drawing depending on which mouse 
  513.                    button you used to press DRAW.
  514.                   
  515.               (a)  Left mouse button colours the map according to the tree and
  516.                    snow levels.
  517.  
  518.               (b)  Right mouse button colours the map according to height
  519.                    above sea level green is low, brown medium and white high.
  520.                    lighter colours are higher ground.
  521.  
  522.                    To cancel a drawing press the right mouse button.
  523.                    Left mouse button toggles screens if you have already
  524.                    pressed FAST.
  525.  
  526.            When the picture is finished some diagonal lines will appear. 
  527.            These show the approximate viewing area. They will be automatically
  528.            redrawn whenever you change any of the parameters which effect 
  529.            this (eg. perspective)
  530.  
  531.  
  532.       Calculation buttons (still in the border around the picture window)
  533.       NOTE: You can stop any of these by pressing the right mouse button.
  534.             Left mouse button toggles screens (only if you have previously
  535.             activated FAST)
  536.  
  537.              RIVER Makes a river. When you press this the mouse will become
  538.                    a crosshair in the window. Click on the place you want
  539.                    the river to start from and the programme will start
  540.                    water flowing from this spot. It will find the lowest 
  541.                    point next to the end of the trickle of water and fill
  542.                    this with water. The process continues until the water
  543.                    reaches the sea. If you run water into a valley and it 
  544.                    can't get out the other end it will (slowly!) fill the 
  545.                    valley until it overflows. Just so that you can see that
  546.                    something is happening the crosshairs will follow the end
  547.                    of the trickle of water.
  548.  
  549.               LAKE Same as RIVER except the water will stop when it fills 
  550.                    the valley up to the height of the point you started on.
  551.                    If it reaches the sea it will fill the sea up to the start
  552.                    level. This could take a very long time so be prepared to
  553.                    stop it (right mouse button).
  554.                    This is very similar to rivers except that rivers only 
  555.                    stop when they reach the sea.
  556.          
  557.                    Both rivers and lakes can take anywhere from 0 to 10 
  558.                    minutes (or even much longer), depending on how many deep
  559.                    valleys need filling.
  560.  
  561.              DRAIN Emptys all the rivers and lakes, and fills them with dirt.
  562.                    You could use this to generate flat areas in the valleys
  563.                    by filling them with water and then draining them. You 
  564.                    could then send another river through to obtain a meandering
  565.                    effect.
  566.                    When you fill an area with a lake or river the height of the
  567.                    data points is modified, so the only way to get your
  568.                    original data back is to regenerate using the main menu.
  569.                    DRAIN takes 13 seconds on FAST and 39 seconds without
  570.                    FAST.
  571.                    
  572.  
  573.   <>, FLIP, N,E,W change the data around so that you are looking at it form
  574.                   the North, East and West respectively.
  575.                   The <> button reverses the data from left to right and the up
  576.                   and down arrow button (on the bottom of the left border) 
  577.                   reverses the data from top to bottom and FLIP flips the data 
  578.                   upside down so that the mountains become valleys and the 
  579.                   valleys become mountains. Each of these takes about 10 
  580.                   seconds.
  581.  
  582.                S  This button restores the display to what it was before you 
  583.                   started playing with all of the buttons mentioned in the
  584.                   above paragraph. This will take either 0, 10, 20 or 30 
  585.                   seconds depending on how much you fiddled with it all. 
  586.                   This routine works by using 0, 1, 2  or 3 of the above
  587.                   routines to restore it. It will calculate the most efficient
  588.                   way of doing this. 
  589.               NOTE: if you stopped one of these routines before it is finished
  590.                     then S will not be able to restore it and will not bother 
  591.                     trying.
  592.  
  593.  
  594.        End of calculation buttons......
  595.  
  596.       BUILD and DIG buttons.
  597.         These allow you to raise and lower the height of the data points.
  598.         When you click on these buttons you will get a crosshair pointer in
  599.         the map window. Place this on the point you wish to raise or lower and
  600.         hold down the left mouse button. Let go when the point has reached the
  601.         required height or just move the mouse. As long as you are holding the
  602.         left mouse button and you have not moved the crosshairs from the point
  603.         it will continue to DIG or BUILD. The height will be displayed in the
  604.         PT. HEIGHT box so you can see where you are up to.
  605.         When you have finished with this point you can move on to another 
  606.         point and adjust this if you wish. 
  607.  
  608.         To exit press the right mouse button.
  609.  
  610.         The height of the point under the crosshairs will be displayed in 
  611.         the PT. HEIGHT box and will change as you move the crosshairs or
  612.         press the left mouse button to change the height.  
  613.  
  614.  
  615.      ***********************************************************************
  616.  
  617.        The rest of the screen is divided into a number of boxes which are used
  618.        to change the way the 3D picture is rendered.
  619.  
  620.  
  621.                               LEVELS (% OF HEIGHT)
  622.       **********************************************************************
  623.  
  624.       Each of the slider bars in this box defines the level at which each 
  625.       type of cover begins. The numbers are a percentage of the maximum
  626.       possible height for the scene.
  627.  
  628.       You can change each by either
  629.       (a) using the slider bar
  630.       or
  631.       (b) clicking on the button (eg sea level) with the left mouse.
  632.           You will then be presented with the crosshairs in the 2D window.
  633.           Just click on a point on the map and the programme will use the 
  634.           height of this point as the level for that button. The height of
  635.           the point under the crosshairs will be displayed in the PT.HEIGHT
  636.           box. To quit this function without making any changes just press
  637.           the right mouse button.
  638.  
  639.      Full Snow:   All points above this height will be rendered as snow.
  640.      Patchy Snow: Points between this height and Full Snow may or may not   
  641.                   be snow. I have tried to programme it so that the snow 
  642.                   sticks to the flatter parts and you get less snow cover
  643.                   as you get lower. (This replaces the BLEND function in
  644.                   earlier versions)
  645.     Max Trees:    No trees will grow above this level.
  646.     Patchy Trees: Similar to patchy snow.
  647.     Sea Level:    Any point lower than this will be under water.
  648.      Blending:    Sometimes you will find that the transition from patchy to
  649.                   full (snow or trees) does not happen very smoothly. This 
  650.                   transition depends on the height and power parameters and 
  651.                   can sometimes make the snow (and trees) change to almost
  652.                   complete rock at the patchy level.
  653.                   Adjust this to make it more gradual.
  654.    
  655.  
  656.     **************************************************************************
  657.  
  658.  
  659.  
  660.                                     VIEW
  661.     **************************************************************************
  662.  
  663.            The 3 parameters in this box define the way the picture
  664.                    is viewed.
  665.       
  666.                    Elev. Angle: angle of elevation which you view the scene 
  667.                                 from. Must be between 0 (low view) and
  668.                                 90 (viewed from directly overhead).
  669.                                 The actual appearance also depends on the
  670.                                 height scale used.
  671.  
  672.                    Horizon:  This is the level of the horizon 
  673.                              measured down from the top of the screen,
  674.                              assuming you are looking at it from zero
  675.                              elevation. Higher elevation angles push the
  676.                              horizon higher up, and the perspective 
  677.                              control has a small effect at high elevations
  678.                              as well.
  679.                              Change this to move the picture up and down
  680.                              the screen, the smaller the number the
  681.                              higher the picture. Making this larger can
  682.                              stop the picture finishing before it reaches
  683.                              the bottom of the screen.
  684.  
  685.                    Perspective: As the picture is generated the points
  686.                                 nearest the front are made larger (just
  687.                                 like in real life). This parameter 
  688.                                 controls how much larger. The smaller the
  689.                                 number the larger the effect. 
  690.                                
  691.  
  692.      ***********************************************************************
  693.  
  694.                    
  695.                                    SCALING
  696.      ************************************************************************
  697.  
  698.            The first 3 define the scaling factors used in each
  699.                       direction.
  700.       
  701.                    Horizontal: Magnifies the picture horizontally.
  702.                               Any number less than about 1.3 will not
  703.                               fill the screen.
  704.                   
  705.                    Vertical: Magnifies the picture vertically. Make this
  706.                              a little bigger if the picture doesn't 
  707.                              reach the bottom of the screen.
  708.  
  709.                     Both Horizontal and Vertical should be above about
  710.                     1.3 (or else you will get blank bits at the edges)
  711.                     but can get bigger.
  712.              
  713.                    Height: changes the height of the mountains.
  714.                            This actually determines the maximum THEORETICAL
  715.                            height which could be plotted. In most cases
  716.                            the highest height actually plotted will be
  717.                            less than this because your data points
  718.                            generated in stage 1 will often not reach
  719.                            the maximum possible level. Anyway if you
  720.                            want taller mountains make this bigger.
  721.                            If you make this large you may have to reduce
  722.                            the vertical scaling to compensate.
  723.  
  724.                   Power: all heights are raised to this power (i.e. h^power)
  725.                          before plotting. This is used to simulate erosion
  726.                          by making the mountains steeper than the 
  727.                          valleys. Higher numbers increase this effect.
  728.                          Power can be 1, 2 or 3. Smaller powers result in
  729.                          slightly quicker 3D rendering times.
  730.                          
  731.      ***********************************************************************
  732.                           
  733.           
  734.  
  735.  
  736.  
  737.                                       MAX. ANGLES
  738.      ***********************************************************************
  739.  
  740.                           These parameters set the maximum steepness for 
  741.                           sand, trees and snow. Any slope steeper than
  742.                           this will be rendered as a rock. This is to
  743.                           simulate the fact that snow, sand and trees
  744.                           don't stick to very steep surfaces. Each is
  745.                           an angle (between 0 and 90) which measures
  746.                           the maximum possible slope for SAND, TREES
  747.                           and SNOW. (Experiment for best effect)
  748.  
  749.      ***********************************************************************  
  750.  
  751.  
  752.  
  753.                                 LIGHT SOURCE
  754.      ***********************************************************************
  755.  
  756.                           These specify the position of the light source
  757.                           (i.e. the sun) and are used by the programme to
  758.                           calculate shading and shadows.
  759.  
  760.                     Azim: Measures the azimuth (horizontal) angle of
  761.                           the sun (any number from 0 to 360). 0 is North.
  762.                           Some special cases:-
  763.  
  764.                           0 or 360   Light from back (north)
  765.                                90    Light from right (east)
  766.                                180   Light from front (south)
  767.                                270   light from left (west)
  768.   
  769.               
  770.     
  771.                     Elev: Measures the elevation of the sun in degrees
  772.                           between 0 (low) and 90 (high).
  773.  
  774.       **********************************************************************
  775.  
  776.  
  777.  
  778.              THERE ARE 2 OTHER SLIDER BARS AT THE BOTTOM OF THE SCREEN
  779.              *********************************************************
  780.  
  781.  
  782.       WATERFALLS: Determines the angle at which rivers will be rendered
  783.                    as waterfalls (white water). Any river which is steeper
  784.                    than this angle will be a waterfall.
  785.  
  786.        WAVES: Determines the  amount of waves in the sea. Keep this low 
  787.               for no waves and increase it for more.
  788.             
  789.    
  790.  
  791.       **********************************************************************
  792.  
  793.  
  794.   Back to the menu on the main screen.................
  795.  
  796.       
  797.       LOAD DATA: loads all the Rendering Data (the stuff in the picture 
  798.                  parameters), the Data points Data (seed, resolution
  799.                  Extra random) and the palette from disk. 
  800.                  Files from earlier versions can be loaded into version 2.
  801.                  All the new parameters will have their default values.
  802.                  However, you cannot load version 2 files into earlier 
  803.                  versions.
  804.  
  805.       SAVE DATA: saves all the Rendering Data (the stuff in the picture
  806.                  parameters), and Data points data (seed, resolution
  807.                  Extra random, lake, river and shadow calculations) and
  808.                  the palette to disk. 
  809.                  DISABLED IN THE DEMONSTRATION VERSION. 
  810.  
  811.                All Rendering Data files are suffixed with .REND, these
  812.                files are just sequential data files.
  813.   
  814.  
  815.      RENDER 3D Renders a 3 dimensional image using the parameters set up
  816.                 in the picture parameter screen and the data that is 
  817.                 currently in the memory. If you haven't generated any data
  818.                 (Stage 1) then you will not get much of a picture.
  819.  
  820.  STOP RENDERING Stops the 3D rendering. Naturally this is inactive
  821.                 unless you are already rendering. You cannot use any of
  822.                 the other items in the picture menu (except PALETTE) or 
  823.                 any of the items in the DATA POINTS menu or the LOAD IFF
  824.                 menu item while the picture is rendering.
  825.        
  826.         PALETTE Brings up a palette tool in case you don't like the 
  827.                 default colours. This is a scaled down version of a 
  828.                 general palette tool which I wrote (in AMOS), called Gumby's
  829.                 Palette V1.0. You will get the full procedure (which you can
  830.                 use in your own AMOS programmes) when you register if you
  831.                 want it (please ask if you do).
  832.     The landscape version of this procedure supports the following features.
  833.  
  834.      DRAGBAR:
  835.      This is the message (Gumby's Palette) at the top of the screen. 
  836.      Hold left mouse button down while you are over this and drag the
  837.      palette screen up and down your screen.
  838.  
  839.      RGB sliders: These work in the usual way, just click on the slider
  840.      with the left mouse button and drag it along, or just click on the
  841.      spot you want it to go to.
  842.  
  843.      Up to 32 colours are displayed in little boxes on the right of the    
  844.      screen. You can select two of these at any time. 
  845.      Left mouse button selects the CURRENT colour. (The box will be outlined 
  846.      in white.) This will be changed by moving the slider bars.
  847.  
  848.      Right mouse button selects the TO colour(outlined in blue). This is 
  849.      used by COPY, SPREAD and CYCLE, to copy, spread or cycle from the
  850.      current colour to the TO colour, and also by SWAP to swap the current 
  851.      colour with the TO colour.
  852.  
  853.  
  854.      The TO and CURRENT colours are outlined in different colours so that
  855.      you can see them. It is possible that the colours used by these 
  856.      outlines are hard to see because they are the same or similar
  857.      to the colour used for the background of the box.
  858.  
  859.      COLOUR Buttons:
  860.      There are 5 of these COPY, SWAP, CYCLE, SPREAD and SKIP.
  861.      These are selected with the left (and sometimes right) mouse button.
  862.  
  863.      COPY and SWAP are explained above.
  864.  
  865.      CYCLE. Press Left mouse button to cycle forward and right mouse 
  866.      button to cycle backwards. Cycles all colours between TO and FROM.
  867.  
  868.      SPREAD spreads the colour from the current colour to the TO colour
  869.      and works in conjunction with the SKIP button. 
  870.  
  871.      If SKIP is 1 then the spread will skip 1 colour in between each      
  872.      one it spreads. Best way is to try it! I put this in because I 
  873.      thought it might be useful in a Mandelbrot type programme.
  874.      SKIP can be any number you like providing it is between 0 and 9.
  875.      I don't think it would be a very good idea to set it to a number   
  876.      greater than the number of colours between the two colours you are
  877.      spreading between. This could cause some unpredictable results.
  878.      Usually you will leave this set to zero.
  879.    
  880.  
  881.      DEFAULT  Returns to default palette.
  882.      (Left mouse) 
  883.      Returns all colours to Landscape's default colours.
  884.      (right mouse)
  885.      Returns to the AMOS default colours (which are not much use in landscape!)
  886.  
  887.      Exit CANCEL cancels all changes and returns you to your programme.
  888.      Exit ACCEPT keeps all changes and returns you to your programme.
  889.  
  890.  
  891.      Back to RENDER MENU....
  892.    
  893.      PATTERN ON/OFF  Each of the polygons used to generate the 3D scene has 
  894.                      a random pattern on it to help it blend in with adjacent
  895.                      polygons. Unfortunately this slows down the rendering a
  896.                      bit and looks a bit silly on low resolutions. If you
  897.                      don't like it just use this to turn it off. If you want
  898.                      it then turn it on again.
  899.        
  900.  
  901.  
  902.  
  903.      OTHER FEATURES OF LANDSCAPE
  904.      ***************************
  905.  
  906.      DRAGBAR. If you are not rendering, then the entire screen can be
  907.               dragged up and down by holding down the left mouse button.
  908.               This feature is inactive during all other menu operations,
  909.               and only works on the screen which shows the 3D plots.
  910.               This has been included so that those poor NTSC users can see
  911.               what they are missing without moving the horizon and 
  912.               regenerating the whole thing again. When you let go of the 
  913.               mouse it will return to its usual position. 
  914.                
  915.  
  916.  
  917.      TROUBLESHOOTING
  918.      ***************
  919.  
  920.      If you want to copy a palette from one scene to another then save the
  921.      source scene as an IFF file and load it into your new scene, then
  922.      regenerate. 
  923.  
  924.      If your picture is all sea, then increase the height and/or lower the
  925.      sea level. If this doesn't help it may be because you have been a silly
  926.      sod and forgotten to generate any data points! 
  927.  
  928.      If all of your mountains are very pointy then decrease the height and/or
  929.      the POWER parameters and/or use the Skewed probability distribution.
  930.      (You may also have to decrease the sea level to compensate.)
  931.      If skewed still gives pointy mountains then try FLIPPING the data.
  932.  
  933.      If the sides of your mountains are very smooth and you want to make them
  934.      rougher then regenerate the data points using a different Fractal 
  935.      Parameter. Make it smaller for rougher terrain.
  936.  
  937.      While you are trying to adjust everything for a scene set the resolution
  938.      on 8 or 16 and render in 2D. When this looks as if it might make 
  939.      something interesting then try it on resolution 16 with 3D and pattern
  940.      and shadows off.
  941.      This will allow you to adjust the horizon to get the scene to fill the
  942.      screen. NTSC users can use the dragbar to see what they are missing. 
  943.      When it all looks about right then try it on a finer resolution.
  944.  
  945.      Sometimes you will generate something which has very high mountains 
  946.      at the front which block out the rest of the picture. These should 
  947.      show up if you render in 2D first. Then you can use the calculation
  948.      buttons (N,E,W, FLIP etc) to change the data or you can pick another
  949.      seed and recalculate.  
  950.  
  951.      ############
  952.          BUGS
  953.      ############
  954.      None. (That I know of!) All Bug reports and/or suggestions should be
  955.      sent to the above address.
  956.     
  957.  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  958.       
  959.      I hope you find this programme and/or its procedures useful and that 
  960.      you bother to take the time to write back and register. If you have 
  961.      written anything that you would like to send me, please feel free to do
  962.      so.
  963.  
  964.  
  965.      BUT PLEASE DON'T SEND ANY SILLY SCROLLY DEMOS, MEGADEMOS, ULTRADEMOS,
  966.      ULTRAMEGADEMOS, MEGAULTRADEMOS, ULTRACOSMICDEMOS, ALPHAGAMMAOMEGADEMOS,
  967.      ZAPHODEFFINGBEEBLEBROXDEMOS OR ANYTHING ELSE VAGUELY RESEMBLING A DEMO!
  968.  
  969.  
  970.      AMOS IS A BRILLIANT LANGUAGE SO HOW ABOUT USING IT TO WRITE SOMETHING
  971.      REALLY USEFUL?
  972.  
  973.      Happy (real) programming.
  974.      Andrew.
  975.  
  976.  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  977.  
  978.  
  979.     The future???
  980.  
  981.     Add Haze and/or clouds.
  982.     Put the sun in the sky if visible.
  983.     Allow different colour palettes for different times of day including 
  984.     night time (maybe even get the moon up?).
  985.     Change viewpoint and direction of view. This could lead to some sort of
  986.     animation. 
  987.         Thanks to everyone who requested this, I had thought of it but
  988.         it will require a rewrite of some of the rendering code (which is long
  989.         overdue in places!) and may slow down the rendering to some extent, 
  990.         definitely version 3 stuff! 
  991.     I would like to improve the dig and build tools so that you can alter large
  992.     areas more easily, but still retain fine control.
  993.     There must be a faster way of making the rivers and lakes fill up!
  994.  
  995.     All other suggestions are welcome and will be implemented if possible,
  996.     time, memory and my newborn daughter permitting! 
  997.    
  998.  
  999.  
  1000.  
  1001.  
  1002.  
  1003.  
  1004.